package com.tx.dao;

import com.tx.entity.FileInfo;
import com.tx.entity.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.io.File;
import java.util.List;
import java.util.Map;

/**
 * @Author: tcx
 * @description: 文件数据持久化层接口
 * @Date: 2019/11/10
 **/
@Repository("fileInfoDao")
public interface FileInfoDao {
    /* *
     * @description:  添加文件
     * @author tcx
     * @date 2019/11/13
     * @param fileInfo
     * @return void
     */
    Integer insert(FileInfo fileInfo);
    /* *
     * @description:  删除文件
     * @author tcx
     * @date 2019/11/13
     * @param id
     * @return void
     */
    Integer delete(Integer id);
    /* *
     * @description:  修改文件
     * @author tcx
     * @date 2019/11/13
     * @param fileInfo
     * @return void
     */
    Integer update(FileInfo fileInfo);
    /* *
     * @description:  根据文件id查询文件信息
     * @author tcx
     * @date 2019/11/13
     * @param id
     * @return com.tx.entity.FileInfo
     */
    FileInfo  select(Integer id);
    /* *
     * @description:  查询所有文件
     * @author tcx
     * @date 2019/11/13
     * @param
     * @return java.util.List<com.tx.entity.FileInfo>
     */
    List<FileInfo> selectAll();
    /* *
     * @description:  查询用户所有文件
     * @author tcx
     * @date 2019/11/13
     * @param id
     * @return java.util.List<com.tx.entity.FileInfo>
     */
    List<FileInfo> selectFileByUser(@Param("uId") Integer uId,@Param("beginIndex") Integer beginIndex,@Param("everyPage")Integer everyPage);
    /* *
     * @description:  查询用户文件总数
     * @author tcx
     * @date 2019/11/13
     * @param id
     * @return java.lang.Integer
     */
    Integer selectFileByUserCount(Integer id);
    Integer selectFileAllCount();
    Integer selectFileKeyCount(String key);
    /* *
     * @description:  根据关键字分页查询文件
     * @author tcx
     * @date 2019/11/13
     * @param key
     * @param beginIndex
     * @param everyPage
     * @return java.util.List<com.tx.entity.FileInfo>
     */
    List<FileInfo> selectKeyPage(@Param("key") String key,@Param("beginIndex") Integer beginIndex,@Param("everyPage")Integer everyPage);
    /* *
     * @description:  分页查询所有文件，按时间排序
     * @author tcx
     * @date 2019/11/13
     * @param page
     * @return java.util.List<com.tx.entity.FileInfo>
     */
    List<FileInfo> selectFileByPage(Page page);
    /* *
     * @description:  查询用户最新十个文件
     * @author tcx
     * @date 2019/11/16
     * @param uId
     * @return java.util.List<com.tx.entity.FileInfo>
     */
    List<FileInfo> selectUserNewFile(Integer uId);
    //数据总数
    public Integer getTotal(Map<String,Object> map);
    //查询所有文件
    public List<FileInfo> selectFileKey(Map<String,Object> map);
}
